Перейти к основному содержимому

CVS и SVN

· 2 мин. чтения

CVS и SVN (Subversion) это программы хранения истории изменения проекта в файловой системе разными пользователями в результате одновременной совместной работы. Существует клиентская и серверная часть.

Когда начинается разработка проекта, можно разделить весь проект на части и дать разные части разным программистам реализовывать и поставить архитектора заведывать всеми ими. Но как правило, общие части системы надо редактировать в таком случае обоим одновременно и если процесс разработки достаточно быстр то может возникнуть ситуация, когда файл перезаписывается двумя или больше людьми.

SVN это наследник CVS, впрочем если вы испытываете большую симпатию к Microsoft, вы можете использовать Visual SourceSafe. Из себя это представляет сетевую программу, где центральный сервер хранит все вносимые изменения, а клиенты уже производят операции над этими изменениями. Поэтому если вы работаете в фирме, и сервер уже имеется, то вам достаточно установить клиентскую программу.


Для windows можно посоветовать tortoiseSVN. В настройках устанавливается связь с localhost:3690, где висит SSH-тунненель putty (настраивается в Connection/SSH/Tunnels) или SSH tunnel client. Если хочется платного, то есть SmartSVN.

После настроек - создаём папку под проект и работаю полностью из контексного меню эксплорера делаем операцию checkout (копирование working copy в локальную папку). Что-бы сохранить свои изменения в файлах делаем операцию update (копирование изменений из svn в локальную папку) и commit (сохранение своих изменений в svn). В случае если файлы были изменены одновременно, то svn не позволит вам сохранить файл и отметит его как конфликт, который надо решить либо через diff (сравнение svn и локальной версии), либо через solved (перезаписать версию svn своей). В особо запущенных случаях, когда файлы переименовываются или удаляются не используя функции svn, вам прийдётся запускать cleanup.

Из дополнительных функций есть функция вины (blame), благодаря которой можно найти кто какую строчку написал. Удачи в проектах!